Filesystem MCP 서버
Filesystem MCP 서버
파일 시스템 작업을 위한 Model Context Protocol(MCP)을 구현한 Node.js 서버입니다.
특징
- 파일 읽기/쓰기
- 디렉토리 생성/목록/삭제
- 파일/디렉토리 이동
- 파일 검색
- 파일 메타데이터 가져오기
참고: 이 서버는 args를 통해 지정된 디렉토리 내에서만 작업을 허용합니다.
API
리소스
file://system: 파일 시스템 작업 인터페이스
도구
read_file
파일의 전체 내용을 읽습니다
- 입력: path (string)
- UTF-8 인코딩으로 파일 전체 내용을 읽습니다
read_multiple_files
여러 파일을 동시에 읽습니다
- 입력: paths (string[])
- 특정 파일 읽기 실패가 전체 작업을 중단시키지 않습니다
write_file
새 파일을 생성하거나 기존 파일을 덮어씁니다 (주의해서 사용)
- 입력:
- path (string): 파일 위치
- content (string): 파일 내용
edit_file
고급 패턴 매칭과 서식 지정을 사용하여 선택적 편집 수행
- 기능:
- 줄 기반 및 여러 줄 내용 매칭
- 들여쓰기 보존과 함께 공백 정규화
- 올바른 위치 지정과 함께 여러 동시 편집
- 들여쓰기 스타일 감지 및 보존
- 컨텍스트가 포함된 Git 스타일 diff 출력
- 드라이 런 모드로 변경 사항 미리 보기
- 입력:
- path (string): 편집할 파일
- edits (array): 편집 작업 목록
- oldText (string): 검색할 텍스트 (부분 문자열 가능)
- newText (string): 대체할 텍스트
- dryRun (boolean): 적용하지 않고 변경 사항 미리 보기 (기본값: false)
- 드라이 런의 경우 상세한 diff와 매치 정보를 반환하고, 그렇지 않으면 변경 사항을 적용합니다
- 권장 사항: 항상 먼저 dryRun을 사용하여 변경 사항을 적용하기 전에 미리 확인하세요
create_directory
새 디렉토리를 생성하거나 디렉토리가 있는지 확인합니다
- 입력: path (string)
- 필요한 경우 상위 디렉토리도 생성합니다
- 디렉토리가 이미 존재하는 경우 조용히 성공합니다
list_directory
[FILE] 또는 [DIR] 접두사가 있는 디렉토리 내용을 나열합니다
- 입력: path (string)
move_file
파일 및 디렉토리 이동 또는 이름 변경
- 입력:
- source (string)
- destination (string)
- 대상이 이미 존재하는 경우 실패합니다
search_files
파일/디렉토리를 재귀적으로 검색합니다
- 입력:
- path (string): 시작 디렉토리
- pattern (string): 검색 패턴
- excludePatterns (string[]): 제외할 패턴. Glob 형식을 지원합니다.
- 대소문자 구분 없는 매칭
- 일치하는 항목의 전체 경로를 반환합니다
get_file_info
파일/디렉토리의 상세 메타데이터 가져오기
- 입력: path (string)
- 반환 정보:
- 크기
- 생성 시간
- 수정 시간
- 접근 시간
- 타입 (파일/디렉토리)
- 권한
list_allowed_directories
서버가 접근할 수 있는 모든 디렉토리 목록 조회 - 입력 필요 없음 - 반환 정보: - 이 서버가 읽기/쓰기 가능한 디렉토리들
Claude Desktop에서 사용 방법
claude_desktop_config.json에 다음을 추가하세요:
참고: 서버에 샌드박스 디렉토리를 제공하려면 /projects에 마운트하세요. ro 플래그를 추가하면 서버에서 해당 디렉토리를 읽기 전용으로 만듭니다.
Docker
참고: 모든 디렉토리는 기본적으로 /projects에 마운트해야 합니다.
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
"--mount",
"type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
"--mount",
"type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
"mcp/filesystem",
"/projects"
]
}
}
}
NPX
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
VS Code에서 사용 방법
수동 설치의 경우, VS Code의 사용자 설정(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open Settings (JSON)을 입력하여 이 작업을 수행할 수 있습니다.
선택적으로 작업 공간에 .vscode/mcp.json 파일을 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.
.vscode/mcp.json 파일에서는 mcp 키가 필요하지 않습니다.
서버에 샌드박스 디렉토리를 제공하려면 /projects에 마운트하세요. ro 플래그를 추가하면 서버에서 해당 디렉토리를 읽기 전용으로 만듭니다.
Docker
참고: 모든 디렉토리는 기본적으로 /projects에 마운트해야 합니다.
{
"mcp": {
"servers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--mount",
"type=bind,src=${workspaceFolder},dst=/projects/workspace",
"mcp/filesystem",
"/projects"
]
}
}
}
}
NPX
{
"mcp": {
"servers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"${workspaceFolder}"
]
}
}
}
}
빌드
Docker 빌드:
docker build -t mcp/filesystem -f src/filesystem/Dockerfile .
라이선스
이 MCP 서버는 MIT 라이선스 하에 제공됩니다. 이는 MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있음을 의미합니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
연결된 구성 요소
- 현재 식별된 연결 구성 요소가 없습니다.